The present invention relates generally to the field of data communication, and more particularly to methods of establishing transport layer connections independent of Internet Protocol (IP) addresses.
A current trend in computing is toward virtualization using logical partitions (LPARs). An LPAR or virtual machine is the division of a computer's processors, memory, storage, and input/output into multiple sets of resources so that each set of resources can be operated independently with its own operating system instance and applications. As computers become more powerful, partitioning allows multiple virtual systems to run on one machine, thereby using the computer's resources more efficiently. Recently, virtualization technology has been expanded with workload partitions (WPARs). WPAR technology allows administrators to virtualize operating systems, which allows for fewer operating system images on a partitioned server.
A process known as live partition mobility allows LPARs and WPARs, and their hosted applications, to be moved from one physical system to another without disrupting infrastructure services. The migration transfers the entire system environment, including processor states, memory, attached virtual devices, and connected users. Live partition mobility enables partitions to be moved off servers that are to be shut down for maintenance or repair without interrupting services to users. Live partition mobility also facilitates load and resource balancing over a system of networked servers.
Networks are typically divided into subnetworks. A subnetwork may represent all the machines at one geographic location, in one building, in the same department, or on the same local area network (LAN). All the computers that belong to a subnetwork are addressed with the same most-significant bit group in their Internet Protocol (IP) address, which is known as a routing prefix or network number.
Transport layer protocols, such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP), specify a source and destination port number in their headers. In a process known as binding, an application process associates its input or output channel file descriptors, which are known as sockets, with a port number and an IP address to send and receive data via a network. The operating system maps a socket to a particular application process or thread. The operating system forwards payloads of incoming sockets associated with applications by extracting the IP address from the IP header and the port number from the transport layer header.
When a partition is migrated from one subnetwork to another subnetwork, its IP address changes because the routing prefix or network number of the partition's IP address must change as the partition is migrated beyond its original network boundaries. However, the sockets of its processes continue to be identified by its original IP address. Accordingly, incoming cannot be routed properly.